﻿using System.ComponentModel.DataAnnotations;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using Web.Models.AnalysisData;

namespace Web.ViewModel.AnalysisData
{
    public class ReportAnalysisModel
    {

        /**
        * 船名，Departure报告中获取显示
        */
        public String ShipName;

        /**
         * mmsi，Departure报告中获取显示
         */
        public String MMSI;

        /**
         * 航次号，从Departure报告中存入，分析Arrival报告时，条件判断若mmsi和VoyageNo相同则将arrival中的数据更新进来
         */
        public String VoyageNo;

        /**
         * Departure报告的字段信息
         */
        public Departure Departure;
        /**
         * Arrival报告的字段信息
         */
        public Arrival Arrival;

        /**
         * Departure报告中的ReportTime减Arrival报告中的Time的Arrival字段,以小时为单位的带1位小数
         */
        public String SailTime;

        /**
         * 耗油量,Departure报告中的StoredRob字段值加ReceivedRob值，减去Arrival报告中的ROB_at_FWE的各项值
         */
        public ROB OilConsumption;
        
        /// <summary>
        /// 每日存油量
        /// </summary>
        public List<DailyOil> DailyRob;

    }
    



    public class Departure
    {
        /**
         * Departure报告的Port_Departed字段
         */
        public String DeparturePort;
        /**
         * Departure报告的reportTime字段
         */
        public String DepartureTime;

        /// <summary>
        /// 离港时间时区
        /// </summary>
        public String DepartureTimeZone;

        /**
         * Departure报告的F
         */
        public String F;
        /**
         * Departure报告的A
         */
        public String A;
        /**
         * Departure报告的Total_Cargo_Loaded字段
         */
        public String LoadedCargo;
        /**
         * Departure报告的Total_Cargo_Discharged字段
         */
        public String DischargedCargo;
        /**
         * 存储的油量,Departure报告中的ROB_at_COSP。 FO=ROB_FO_Total，DO=ROB_DO_Total
         */
        public ROB StoredRob;
        /**
         * 加油量,取Departure报告中的 Received_FO;Received_DO;Received_FW;  主机油、辅机油、汽缸油默认为0
         */
        public ROB ReceivedRob;
    }

    public class Arrival
    {
        /**
         * Arrival报告的Port字段
         */
        public String ArrivalPort;
        /**
         * Arrival报告的Arrival字段
         */
        public String ArrivalTime;
        
        public String ArrivalTimeZone;
        /**
         * Arrival报告的F字段
         */
        public String F;
        /**
         * Arrival报告的A字段
         */
        public String A;
        /**
         * Arrival报告的Cargo_Detail字段值，遍历Cargo_Detail，统计Operation等于LOAD的Quantity的总和值
         */
        public String LoadedCargo;
        /**
         * Arrival报告的Cargo_Detail字段值，遍历Cargo_Detail，统计Operation等于Discharge的Quantity的总和值
         */
        public String DischargedCargo;
        /**
         * 存储的油量,Arrival报告中的ROB_at_FWE。 FO=ROB_FO_Total，DO=ROB_DO_Total,其他4个字段一致
         */
        public ROB StoredRob;

        /**
      * Arrival报告中Distance
      */
        public String Distance;

        /**
         * Arrival报告中AverageSpeed
         */
        public String AverageSpeed;

    }

    public class ROB
    {
        /**
         * 重油
         */

        public float FO;
        /**
         * 轻油
         */
        public float DO;
        /**
         * 主机油
         */
        public float MEsys;
        /**
         * 汽缸油
         */
        public float MEcyl;
        /**
         * 辅机油
         */
        public float AEsys;
        /**
         * 淡水
         */
        public float FW;
    }

    public class DailyOil
    {
        /// <summary>
        /// 日期
        /// </summary>
        public String Date;
        /// <summary>
        /// 油量
        /// </summary>
        public ROB Rob;
    }
}
